home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
CU Amiga Super CD-ROM 25
/
CU Amiga Magazine's Super CD-ROM 25 (1998)(EMAP Images)(GB)(Track 1 of 2)[!][issue 1998-08].iso
/
CUCD
/
WWW
/
http
/
www.wirenet.co.uk
/
files
/
UpdateWirenet.lzx
/
Updates
/
Connect
next >
Wrap
Text File
|
2008-02-05
|
6KB
|
194 lines
/* $VER: Connect 1.4 (07.06.96) */
/* Connects your Amiga to the Internet */
/*
Name
Connect
Usage
Connect [MAIL|NEWS|AUTOMAIL|AUTONEWS|OFF|AUTOOFF]
Options
None: Connects to Internet
MAIL: Connects to Internet and fetches mail
NEWS: Connects to Internet and fetches news and mail
AUTOMAIL: Connects to Internet, fetches mail and disconnects
AUTONEWS: Connects to Internet, fetches news and mail and disconnects
OFF: Disconnects from Internet
AUTOOFF: Disconnects from Internet after waiting for news and mail to finish
*/
/* These are specific to your setup */
DevName = 'DEVS:Networks/ppp.device' /* Your network device */
DevUnit = 0 /* its unit number */
Interface = 'ppp'||DevUnit /* Interface name */
BeforeCon = '' /* Commands to be executed */
AfterCon = '' /* before and after */
BeforeDis = '' /* connection and */
AfterDis = '' /* disconnection */
/* Don't change anything below here */
if ~show('L','rexxdossupport.library') then
call addlib('rexxdossupport.library',0,-30)
BinPath = 'AmiTCP:bin/' /* Paths to AmiTCP commands */
ThorPath = GetVar('Thor/ThorPath')
StartNet = BinPath||'StartNet'
ifconfig = BinPath||'ifconfig'
route = BinPath||'route'
online = BinPath||'online'
offline = BinPath||'offline'
resolve = BinPath||'resolve'
SendEvents = BinPath||'SendEvents'
GetMail = BinPath||'Fetch Mail'
GetNews = BinPath||'Fetch All'
LogPath = 'UUSpool:Connect.log'
SendProc = ThorPath||'bin/SendTCP' /* CLI process names for news and mail */
GetProc = ThorPath||'bin/GetTCP'
Unbatch = BinPath||'ParseThor'
options results
address command
arg opt
/* Main routine */
select
when opt = '' then call Connect
when opt = 'MAIL' then do
call Connect
call DoMail
end
when opt = 'NEWS' then do
call Connect
call DoNews
end
when opt = 'AUTOMAIL' then do
call Connect
call DoMail
call Auto
call Disconnect
end
when opt = 'AUTONEWS' then do
call Connect
call DoNews
call Auto
call Disconnect
end
when opt = 'OFF' then call Disconnect
when opt = 'AUTOOFF' then do
call Auto
call Disconnect
end
otherwise call BadArgs
end
exit
/* Procedures */
Connect: /* Establish connection */
BeforeCon
StartNet
unsetenv ppp0IPLocal
unsetenv ppp0IPRemote
online DevName DevUnit
if RC > 0 then call ConnectionFailed
ifconfig 'lo0 localhost'
ifconfig Interface '$ppp0IPLocal $ppp0IPRemote'
route 'add default $ppp0IPRemote'
call WriteLog('Connection made')
'SetEnv NetState Online'
'run >NIL:' SendEvents
AfterCon
Wait 3
return
Disconnect: /* Break connection */
BeforeDis
ifconfig interface 'down'
offline DevName DevUnit
route 'delete >NIL: $ppp0IPLocal'
route 'delete >NIL: default'
call WriteLog('Connection closed')
'SetEnv NetState Offline'
Unbatch
AfterDis
return
DoMail:
'run >NIL:' GetMail /* Start mail download */
call WriteLog('Mail download started')
return
DoNews:
'Run >NIL:' GetNews /* Start mail and news download */
call WriteLog('News download started')
return
Auto:
say 'Waiting for news/mail to finish' /* Wait for mail and news processes to stop */
call WaitToEnd(SendProc GetProc)
Wait 2
call WaitToEnd(SendProc GetProc 'ncftp')
return
BadArgs: /* Give usage information */
say
say 'Usage: Connect [MAIL|NEWS|AUTOMAIL|AUTONEWS|OFF|AUTOOFF]'
say
say ' None: Connects to Internet'
say ' MAIL: Connects to Internet and fetches mail'
say ' NEWS: Connects to Internet and fetches news and mail'
say ' AUTOMAIL Connects to Internet, fetches mail and disconnects'
say ' AUTONEWS: Connects to Internet, fetches news and mail and disconnects'
say ' OFF: Disconnects from Internet'
say ' AUTOOFF: Disconnects from Internet after waiting for news and mail to finish'
say
exit
WriteLog: procedure expose LogPath /* Write line in logfile */
parse arg msg
LogEntry = left(date('W'),3) date() time() msg
say LogEntry
if ~open(log,LogPath,'A') then do
if ~open(log,LogPath,'W') then return
end
call writeln(log,LogEntry)
call close(log)
return
WaitToEnd: procedure /* Wait for the specified process to finish */
parse arg Processes
procs = words(Processes)
do i = 1 to procs
parse var Processes Process.i Processes
end
do until Busy = FALSE
Busy = FALSE
do i = 1 to procs
'Status >NIL: com='Process.i
if RC = 0 then do
Busy = TRUE
Wait 5
end
end
end
return
ConnectionFailed:
call WriteLog('Connection attempt failed') /* Report connection failure */
Ouch('Your internet connection has failed')
return
Ouch:
parse arg ErrMsg
say(ErrMsg)
exit
return